﻿using System;

using Moe.ECamel.Common.Contracts;

namespace Moe.ECamel.Client.ServiceProxies
{
	/// <summary>
	/// Service agent for system services.
	/// </summary>
	public class SystemServiceProxy : ECamelServiceProxy<ISystemService>, ISystemService
	{
		/// <summary>
		/// Load initial system startup information.
		/// </summary>
		/// <returns>Startup information.</returns>
		public ECamelSystemInfo GetSystemInfo()
		{
			return ServiceProxy.GetSystemInfo();
		}

		public LoginResponse Login(LoginRequest request)
		{
			return ServiceProxy.Login(request);
		}

		/// <summary>
		/// Creates a database and initializes it with required system data.
		/// </summary>
		/// <param name="setupInfo">Setup information required to initialize database.</param>
		public void ResetDatabase(ECamelSetupInfo setupInfo)
		{
			ServiceProxy.ResetDatabase(setupInfo);
		}
		/// <summary>
		/// Deletes the database.
		/// </summary>
		public void DeleteDatabase()
		{
			ServiceProxy.DeleteDatabase();			
		}

		/// <summary>
		/// Deletes all user-entered information from the system.
		/// </summary>
		public void DeleteUserData()
		{
			ServiceProxy.DeleteUserData();
		}
	}
}